同步阻塞 Input-Output

‌‌‌‌  我们已经介绍过了同步 IO 和阻塞 IO,我们可以联想一下同步阻塞 IO 是不是就是这俩组合起来呢?也就是由用户空间的线程发起主动 IO 调用,在内核缓存区数据没有准备好时这个线程将阻塞挂起,直到内核缓存区的操作彻底完成后这个线程才回到用户空间。

‌‌‌‌  image.png

同步阻塞 IO 的优点

‌‌‌‌  同步阻塞 IO 十分的简单易用,程序员不需要太多的处理,只需要调用对应 API 即可进行 IO 操作

同步阻塞 IO 的缺点

‌‌‌‌  每一次 IO 调用都需要创建一个调用线程,而线程在等待内核执行操作时是阻塞的,虽然阻塞时线程是挂起的并不需要消耗很多 CPU 资源,但是在高并发场景下这样意味着短时间内会创建大量线程来维护网络连接,内存、线程切换的开销会非常巨大。